#include <algorithm>
#include <bits/stdc++.h>
#include <limits>

using ll = long long;

auto &is = std::cin;auto &os = std::cout;

const ll max_n {2000+5}, ll_max{std::numeric_limits<decltype(ll_max)>::max()};
ll dp[max_n][max_n]{};
std::string a,b;

/*
    dp[i][j]是前i个字符转化为j需要的最短编辑距离
*/

int main(){
    is>>a>>b;
    const ll a_size{(ll)a.size()}, b_size{(ll)b.size()};
    a=' '+a,b=' '+b;
    // for(ll i{0};i<max_n;i++)
    //     for(ll j{0};j<max_n;j++)
    //         dp[i][j]=ll_max;

    for(ll i{0};i<std::max({a.size(),b.size()});i++){
        dp[0][i]=i;
        dp[i][0]=i;
    }

    for(ll i{1};i<=a_size;i++){
        for(ll j{1};j<=b_size;j++){
            if(a[i]==b[j]){
                dp[i][j]=dp[i-1][j-1];
            }else{
                dp[i][j] = std::min({
                    dp[i-1][j]+1, //删除
                    dp[i][j-1]+1, //增加
                    dp[i-1][j-1]+1//修改
                });
            }
        }
    }
    os<<dp[a_size][b_size]<<'\n';
}